package homework008;

import java.util.*;

/**
 * **需求四**（实例题）
 * <p>
 * - **第一步：**设计一个商品实体类Goods，包含以下变量
 * - 编号 id
 * - 名称 name
 * - 价格 price
 * - 属性列表（attrList）：是一个双列集合
 * - **第二步：**关于attrList双列集合的要求
 * - key必须为英文，不能使用中文直接作为key
 * - 可以使用**枚举类**或者另一个**双列集合**去存储key英文与中文的对应关系
 * - **第三步：**将以下数据逐个存储到Goods中，并最终添加到一个 goodsList 里面（ArrayList<Goods>）
 * - **第四步：**遍历goodsList并打印，打印格式如下
 */
public class FourDemo {
    public static void main(String[] args) {

        // 需要另一个HashMap，用来存储 英文和中文的对应关系
        HashMap<String, String> mapping = new HashMap<>();
        mapping.put("attr1", "分辨率");
        mapping.put("attr2", "类型");
        mapping.put("attr3", "系统");
        mapping.put("attr4", "厚度");


        // 初始数据准备
        HashMap<String, String> attr = new HashMap<>();

        // attr1 = 分辨率
        attr.put("attr1", "全高清屏（1920×1080）");
        attr.put("attr2", "轻薄笔记本");
        attr.put("attr3", "Windows 10 带Office");
        attr.put("attr4", "15.1mm—18.0mm");

        Goods goods = new Goods();
        goods.setName("荣耀笔记本 MagicBook X 15 2021");
        goods.setPrice(3999.00);
        goods.setAttrList(attr);

        ArrayList<Goods> goodsList = new ArrayList<>();
        goodsList.add(goods);

        for (Goods item : goodsList) {
            System.out.println("商品名：" + item.getName());
            System.out.println("价格：¥" + item.getPrice());
            System.out.println("属性：");

            HashMap<String, String> attrList = item.getAttrList();

            // 获取所有的key
            // 根据key来遍历一个HashMap
            Set<String> keys = attrList.keySet();
            for (String key : keys) {

                // 枚举类的方式
                // System.out.println(GoodsAttrEnum.getByEn(key) + ":" + attrList.get(key));
                // HashMap的方式
                //System.out.println(mapping.get(key) + ":" + attrList.get(key));

                System.out.println(mapping.get(key) + ":" + attrList.get(key));
            }
        }


        // 拓展
        // 声明一个数组，这个数组是带有初始化的值（便于批量定义初始化数据）
        String[] arr = {"a","b","c","d"};

        // 将数组，转为List集合
        List<String> list1 = Arrays.asList(arr);

        // 后续可以直接对List集合进行操作。



    }
}
